In the art of system design, in order to automate the process of designing and prototyping complex systems, various software and related hardware simulator tools have been developed. A simulator is a program that takes as input a description of a circuit network along with behavioral descriptions for each component contained therein to predict the response of the overall circuit to a given input stimulus. These simulators typically merge systems, components, and input descriptions together. In order to describe the circuit network to the simulator circuit component modeling languages are employed.
To use these modeling languages the circuit designers must understand the internal practices and limitations of the simulator itself because these practices tend to shape the modeling language employed to a relatively large degree. For example, some simulators force users to learn modified nodal analysis (MNA) formulation methodology because certain simulators use this methodology internally to formulate circuit relationships. Although efficient from the simulator's perspective, it can be difficult for most users to fully understand. Thus, extensive training was often needed before these more advanced modeling languages could be fully utilized.
Some modeling languages employ MNA both internally and at the user level. As the name implies, modified nodal analysis is an extension of the nodal analysis method which allows components to be described using constitutive (or branch) relationships that map voltages into currents and inter-connection (or terminal) relationships. The terminal relationships are derived by an application of Kirchoff's laws to a single branch and are independent of both the behavior of the branch and the topology of the network. Presently, languages implement this MNA in a manner in which some of the component's inter-connection relationships are given explicitly and others are given implicitly. For example, if a component is described with a branch relationship that gives electrical current as a function of voltage, the terminal relationships can be merged into the branch relationships. However, for the 3 other possibilities, e.g., voltage from current, voltage from voltage, or current from current, the user is required to explicitly specify additional relationships to fully describe the component's behavior. Any other combination requires the use of additional concepts that circuit designers may find un-natural and counter-intuitive.
Another problem with these type modeling languages is that they only allow one to formulate a branch relationship to specify current as a function of one or more voltages. In particular, one could not directly specify a branch voltage or measure a branch current. These two limitations also force the user to use rather complicated procedures to describe component behaviors whose outputs are given in terms of voltage and whose inputs are given in terms of currents.
For example, consider one description of a voltage-controlled current source (VCCS), implemented as shown in prior art FIG. 1A wherein only the branch relationships are given. Since the voltage controlled current source is relatively simple, the output current can be written as a function of the input voltage.
In another example, consider the description of a current controlled voltage source (CCVS) implemented as shown in prior art FIG. 1B wherein the statements EQU I.sub.in : v(ps)=v(ns) EQU I.sub.out : v(p)-v(n)=gain*I.sub.in
are the branch relationships. For current controlled voltage sources, an extra relationship is needed to describe the component's characteristics of the output port and an additional relationship may be needed to describe the characteristics at the input ports. In other words, voltage is used as a controlling variable directly. If current is used an additional relationship is needed to fully describe input and output characteristics. Similarly, current can be used as the output directly. If voltage is used then an additional relationship is needed. Thus, there is an asymmetry in the MNA formulation methodology that circuit designers can find confusing.
Therefore, what is needed in this art is a behavioral description translation method which can translate higher-level behavioral descriptions into a lower-level specification for the simulator and which would generate those other relationships needed by a simulator that were not already present in the original higher-level description.